/**
 * Perfil.java
 */

 /**
 *  AdSec: Administrador de Secundarias
 *  Copyright (C) 2009 Daniela Ramírez Chaves (dannyrch@gmail.com)
 *  Copyright (C) 2009 Leonel Salazar Valverde (leo87sv@gmail.com)
 *
 *  This file is part of AdSec.
 *  AdSec is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  AdSec is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with AdSec.  If not, see <http://www.gnu.org/licenses/>.
 */

package adsec.entidades;

import java.sql.Date;


public class Perfil {

    // <editor-fold defaultstate="collapsed" desc="Constantes de Nombres de Columnas">
    public final static String nombreTabla = "perfil";
    public final static String idPerfilNC = "id_perfil";
    public final static String nombreNC = "nombre";
    public final static String ultimaModificacionNC = "ultima_modificacion";
    public final static String permEstudiantesNC = "p_estudiantes";
    public final static String permResponsableNC = "p_responsables";
    public final static String permMateriasMatriculadasNC = "p_materias_matriculas";
    public final static String permRegistroNotasNC = "p_registro_notas";
    public final static String permDocentesNC = "p_docentes";
    public final static String permDocenteImparteNC = "p_docente_imparte";
    public final static String permMatriculaNC = "p_matricula";
    public final static String permNivelesSeccionesNC = "p_niveles_secciones";
    public final static String permMateriasNC = "p_materias";
    public final static String permAsistenciaNC = "p_asistencia";
    public final static String permPersonalAdmNC = "p_personal_administrativo";
    public final static String permComiteNC = "p_comite";
    public final static String permReportesNC = "p_reportes";
    public final static String permConfiguracionNC = "p_configuracion";
    public final static String permUsuariosNC = "p_usuarios";
    public final static String permPerfilesNC = "p_perfiles";
    // </editor-fold>

    public final static int PERFIL_NUEVO = -1;
    public final static String PERFIL_ADMINISTRADOR = "Administrador";
    public final static String PERFIL_DOCENTE = "Docente";
    
    // <editor-fold defaultstate="collapsed" desc="Atributos privados de la clase">
    private int idPerfil = Perfil.PERFIL_NUEVO;
    private String nombre;
    private Date ultimaModificacion;
    private Permiso permEstudiantes;
    private Permiso permResponsable;
    private Permiso permMateriasMatriculadas;
    private Permiso permRegistroNotas;
    private Permiso permDocentes;
    private Permiso permDocenteImparte;
    private Permiso permMatricula;
    private Permiso permNivelesSecciones;
    private Permiso permMaterias;
    private Permiso permAsistencia;
    private Permiso permPersonalAdm;
    private Permiso permComite;
    private Permiso permReportes;
    private Permiso permConfiguracion;
    private Permiso permUsuario;
    private Permiso permPerfiles;
    // </editor-fold>

    public Perfil(){
        this.inicializarPermisos();
    }//fin de constructor

    public Perfil(String nombre, Date ultimaMod){
        this.nombre = nombre;
        this.ultimaModificacion = ultimaMod;
        this.inicializarPermisos();
    }//fin de constructor

    private void inicializarPermisos(){
        this.permEstudiantes = new Permiso();
        this.permResponsable = new Permiso();
        this.permMateriasMatriculadas = new Permiso();
        this.permRegistroNotas = new Permiso();
        this.permDocentes = new Permiso();
        this.permDocenteImparte = new Permiso();
        this.permMatricula = new Permiso();
        this.permNivelesSecciones = new Permiso();
        this.permMaterias = new Permiso();
        this.permAsistencia = new Permiso();
        this.permPersonalAdm = new Permiso();
        this.permComite = new Permiso();
        this.permReportes = new Permiso();
        this.permConfiguracion = new Permiso();
        this.permUsuario = new Permiso();
        this.permPerfiles = new Permiso();
    }//fin de inicializarPermisos

    /**
     * @return the idPerfil
     */
    public int getIdPerfil() {
        return idPerfil;
    }

    /**
     * @param idPerfil the idPerfil to set
     */
    public void setIdPerfil(int idPerfil) {
        this.idPerfil = idPerfil;
    }
    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the ultimaModificacion
     */
    public Date getUltimaModificacion() {
        return ultimaModificacion;
    }

    /**
     * @param ultimaModificacion the ultimaModificacion to set
     */
    public void setUltimaModificacion(Date ultimaModificacion) {
        this.ultimaModificacion = ultimaModificacion;
    }

    /**
     * @return the permEstudiantes
     */
    public Permiso getPermEstudiantes() {
        return permEstudiantes;
    }

    /**
     * @param permEstudiantes the permEstudiantes to set
     */
    public void setPermEstudiantes(Permiso permEstudiantes) {
        this.permEstudiantes = permEstudiantes;
    }

    /**
     * @return the permResponsable
     */
    public Permiso getPermResponsable() {
        return permResponsable;
    }

    /**
     * @param permResponsable the permResponsable to set
     */
    public void setPermResponsable(Permiso permResponsable) {
        this.permResponsable = permResponsable;
    }

    /**
     * @return the permMateriasMatriculadas
     */
    public Permiso getPermMateriasMatriculadas() {
        return permMateriasMatriculadas;
    }

    /**
     * @param permMateriasMatriculadas the permMateriasMatriculadas to set
     */
    public void setPermMateriasMatriculadas(Permiso permMateriasMatriculadas) {
        this.permMateriasMatriculadas = permMateriasMatriculadas;
    }

    /**
     * @return the permRegistroNotas
     */
    public Permiso getPermRegistroNotas() {
        return permRegistroNotas;
    }

    /**
     * @param permRegistroNotas the permRegistroNotas to set
     */
    public void setPermRegistroNotas(Permiso permRegistroNotas) {
        this.permRegistroNotas = permRegistroNotas;
    }

    /**
     * @return the permDocentes
     */
    public Permiso getPermDocentes() {
        return permDocentes;
    }

    /**
     * @param permDocentes the permDocentes to set
     */
    public void setPermDocentes(Permiso permDocentes) {
        this.permDocentes = permDocentes;
    }

    /**
     * @return the permDocenteImparte
     */
    public Permiso getPermDocenteImparte() {
        return permDocenteImparte;
    }

    /**
     * @param permDocenteImparte the permDocenteImparte to set
     */
    public void setPermDocenteImparte(Permiso permDocenteImparte) {
        this.permDocenteImparte = permDocenteImparte;
    }

    /**
     * @return the permMatricula
     */
    public Permiso getPermMatricula() {
        return permMatricula;
    }

    /**
     * @param permMatricula the permMatricula to set
     */
    public void setPermMatricula(Permiso permMatricula) {
        this.permMatricula = permMatricula;
    }

    /**
     * @return the permNivelesSecciones
     */
    public Permiso getPermNivelesSecciones() {
        return permNivelesSecciones;
    }

    /**
     * @param permNivelesSecciones the permNivelesSecciones to set
     */
    public void setPermNivelesSecciones(Permiso permNivelesSecciones) {
        this.permNivelesSecciones = permNivelesSecciones;
    }

    /**
     * @return the permMaterias
     */
    public Permiso getPermMaterias() {
        return permMaterias;
    }

    /**
     * @param permMaterias the permMaterias to set
     */
    public void setPermMaterias(Permiso permMaterias) {
        this.permMaterias = permMaterias;
    }

    /**
     * @return the permAsistencia
     */
    public Permiso getPermAsistencia() {
        return permAsistencia;
    }

    /**
     * @param permAsistencia the permAsistencia to set
     */
    public void setPermAsistencia(Permiso permAsistencia) {
        this.permAsistencia = permAsistencia;
    }

    /**
     * @return the permPersonalAdm
     */
    public Permiso getPermPersonalAdm() {
        return permPersonalAdm;
    }

    /**
     * @param permPersonalAdm the permPersonalAdm to set
     */
    public void setPermPersonalAdm(Permiso permPersonalAdm) {
        this.permPersonalAdm = permPersonalAdm;
    }

    /**
     * @return the permComite
     */
    public Permiso getPermComite() {
        return permComite;
    }

    /**
     * @param permComite the permComite to set
     */
    public void setPermComite(Permiso permComite) {
        this.permComite = permComite;
    }

    /**
     * @return the permReportes
     */
    public Permiso getPermReportes() {
        return permReportes;
    }

    /**
     * @param permReportes the permReportes to set
     */
    public void setPermReportes(Permiso permReportes) {
        this.permReportes = permReportes;
    }

    /**
     * @return the permConfiguracion
     */
    public Permiso getPermConfiguracion() {
        return permConfiguracion;
    }

    /**
     * @param permConfiguracion the permConfiguracion to set
     */
    public void setPermConfiguracion(Permiso permConfiguracion) {
        this.permConfiguracion = permConfiguracion;
    }

    /**
     * @return the permUsuario
     */
    public Permiso getPermUsuario() {
        return permUsuario;
    }

    /**
     * @param permUsuario the permUsuario to set
     */
    public void setPermUsuario(Permiso permUsuario) {
        this.permUsuario = permUsuario;
    }

    /**
     * @return the permPerfiles
     */
    public Permiso getPermPerfiles() {
        return permPerfiles;
    }

    /**
     * @param permPerfiles the permPerfiles to set
     */
    public void setPermPerfiles(Permiso permPerfiles) {
        this.permPerfiles = permPerfiles;
    }

}//fin de clase Perfil
